"""
切片：
在很多编程语言中，针对字符串提供了很多各种截取函数（例如，substring），其实目的就是对字符串切片。
Python没有针对字符串的截取函数，只需要切片一个操作就可以完成，非常简单。
"""

L = ['Micheal', 'Search', 'Tracy', 'Bob', 'Jack']
print(L[0], L[1], L[2])

r = []
for i in range(3):
    r.append(L[i])
print(r)

# 取前3个元素，用一行代码就可以完成切片
print(L[0:3])

# 如果第一个索引是0，还可以省略
print(L[:3])

print(L[1:3])

# 类似的，既然Python支持L[-1]取倒数第一个元素，那么它同样支持倒数切片
print(L[-2:])
print(L[-2:-1])

L = list(range(100))
print(L)
# 前10个数
print(L[:10])
# 后10个数
print(L[-10:])
# 前10个数，每两个取一个
print(L[10:20])
# 所有数，每5个取一个
print(L[::5])
# 只写[:]就可以原样复制一个list
print(L[:])

# tuple也是一种list，唯一区别是tuple不可变。因此，tuple也可以用切片操作，只是操作的结果仍是tuple：
T = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
print(T[:3])
# 字符串'xxx'也可以看成是一种list，每个元素就是一个字符。因此，字符串也可以用切片操作，只是操作结果仍是字符串：
S = "ABCDEFG"
print(S[:3])
print(S[::2])
# 在很多编程语言中，针对字符串提供了很多各种截取函数（例如，substring），其实目的就是对字符串切片。Python没有针对字符串的截取函数，只需要切片一个操作就可以完成，非常简单。

